home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs10.d81 / dark88-4.sfx / m.1650.a1 (.txt) < prev    next >
Commodore BASIC  |  1990-02-12  |  4KB  |  195 lines

  1. 1000 REM *      DARKTERM '88
  2. 1010 REM * 1650 MODEM FILE SOURCE
  3. 1020 REM *
  4. 1030 OPEN1,9,15,"S0:D'88.1650":CLOSE1
  5. 1040 OPEN2,9,1,"0:D'88.1650"
  6. 1050 SYS700
  7. 1060 .OPT O2
  8. 1070 ;
  9. 1080 CHKIN  =$FFC6 ; KERNAL EQUATES
  10. 1090 CHKOUT =$FFC9
  11. 1100 CHRIN  =$FFCF
  12. 1110 CHROUT =$FFD2
  13. 1120 CLRCHN =$FFCC
  14. 1130 GETIN  =$FFE4
  15. 1140 ;
  16. 1150 PTR    =140 ; TEMP POINTER
  17. 1160 ;
  18. 1170 DETECT =922 ; CARRIER DETECT FLAG
  19. 1180 DDELAY =927 ; DIALING DELAY
  20. 1190 WDELAY =926 ; CARRIER WAIT DELAY
  21. 1200 HDELAY =925 ; HANGUP DELAY
  22. 1210 ;
  23. 1220 MILLI  =$880+24 ; USE TERMINAL'S
  24. 1230 ;
  25. 1240 *=$4500 ; STARTS HERE UP TO $47FF
  26. 1250 ;
  27. 1260 JMP ANSWER ; AUTO-ANSWER
  28. 1270 JMP DODIAL ; AUTO-DIAL
  29. 1280 JMP ONHOOK ; LABEL SAYS ALL
  30. 1290 JMP OFHOOK ; OFF HOOK
  31. 1300 JMP CARCHK ; LOST CARRIER CHECK
  32. 1310 JMP CUSTOM ; USER DEFINED ROUTINE
  33. 1320 JMP HANGUP ; HANGUP ROUTINE
  34. 1330 ;
  35. 1340 ONHOOK LDA #0 ; ON-HOOK
  36. 1350 STA $DD01
  37. 1360 LDA #$20
  38. 1370 STA $DD03 ; PIN J AS OUTPUT
  39. 1380 RTS
  40. 1390 ;
  41. 1400 OFHOOK LDA #$20 ; OFF-HOOK
  42. 1410 STA $DD01 ; PIN J HI
  43. 1420 RTS
  44. 1430 ;
  45. 1440 DODIAL STX PTR ; SAVE ADDRESS
  46. 1450 STY PTR+1 ; OF DIAL PTR STRING
  47. 1460 JSR ONHOOK ; HANG UP
  48. 1470 LDA HDELAY ; WAIT HDELAY SECONDS
  49. 1480 JSR WAIT
  50. 1490 JSR OFHOOK ; OFF-HOOK
  51. 1500 LDA #2 ; WAIT 2 SECONDS
  52. 1510 JSR WAIT
  53. 1520 LDY #0 ; INDEX TO START
  54. 1530 STY POINT
  55. 1540 AUTO1 LDY POINT ; GET INDEX
  56. 1550 LDA (PTR),Y ; AND CHARACTER
  57. 1560 CMP #"0" ; CHECK FOR NUMBER
  58. 1570 BCC NEXT ; NO
  59. 1580 CMP #":"
  60. 1590 BCS NEXT ; NO
  61. 1600 SEC      ; LESS 48 TO GET # OF
  62. 1610 SBC #48  ; PULSES
  63. 1620 BNE AUTO2
  64. 1630 LDA #10  ; 0, SO MAKE 10 PULSES
  65. 1640 AUTO2 STA PULSE ; SAVE IT
  66. 1650 LDA #0 ; PULSE COUNT
  67. 1660 STA COUNT
  68. 1670 AUTO3 JSR (null)OF ; PULSE OFF LINE
  69. 1680 LDX DDELAY ; WAIT DELAY
  70. 1690 LDY DDELAY+1
  71. 1700 JSR MILLI ; WAIT IT OUT
  72. 1710 JSR OFHOOK ; PULSE ON LINE
  73. 1720 LDX DDELAY ; WAIT AGAIN
  74. 1730 LDY DDELAY+1
  75. 1740 JSR MILLI
  76. 1750 INC COUNT ; NEXT PULSE
  77. 1760 LDA COUNT
  78. 1770 CMP PULSE ; DONE YET
  79. 1780 BNE AUTO3 ; NO
  80. 1790 LDA #40 ; WAIT 2/3 SEC FOR NEXT #
  81. 1800 JSR JIFFY
  82. 1810 JSR ABORT ; CHECK FOR STOP KEY
  83. 1820 NEXT INC POINT ; NEXT #
  84. 1830 LDA POINT
  85. 1840 CMP #18 ; DONE ALL 18 CHARS
  86. 1850 BNE AUTO1 ; NO, (null) BACK
  87. 1860 LDA WDELAY ; WAIT OUT THE DELAY
  88. 1870 JSR WAIT
  89. 1880 LDA $DD01 ; HAVE A CARRIER
  90. 1890 AND #16
  91. 1900 BEQ AUTO4 ; YES, SIGNAL IT
  92. 1910 SEC ; NO, SET ZERO FLAG TRUE
  93. 1920 LDA #0 ; AND SET CARRY (NOT ABORT)
  94. 1930 RTS
  95. 1940 AUTO4 SEC ; HAVE CARRIER, SET
  96. 1950 LDA #1 ; ZERO FALSE
  97. 1960 RTS ; EXIT
  98. 1970 ;
  99. 1980 ABORT LDA $91 ; CHECK STOP KEY
  100. 1990 CMP #$7F
  101. 2000 BNE ABO1 ; NO, (null) BACK
  102. 2010 ABO0 PLA ; PULL RETURN ADDRESS
  103. 2020 PLA
  104. 2030 CLC ; CLEAR THE CARRY
  105. 2040 ABO1 RTS ; AND EXIT TO TERMINAL
  106. 2050 ;
  107. 2060 WAIT TAX ; 1 SECOND COUNTER
  108. 2070 W0 JSR CLRTIM
  109. 2080 W1 LDA $91 ; CHECK FOR ABORT
  110. 2090 CMP #$7F ; DURING THE WAIT
  111. 2100 BEQ ABO0
  112. 2110 LDA $A2
  113. 2120 CMP #60
  114. 2130 BCC W1
  115. 2140 DEX
  116. 2150 BMI W2
  117. 2160 BNE W0
  118. 2170 W2 RTS
  119. 2180 ;
  120. 2190 POINT  .BYT 0
  121. 2200 COUNT  .BYT 0
  122. 2210 PULSE  .BYT 0
  123. 2220 KEYVAL .BYT 0
  124. 2230 ;
  125. 2240 ANSWER JSR ONHOOK ; ON-HOOK
  126. 2250 AN1 LDA $DD01 ; CHECK FOR RING
  127. 2260 AND #8 ; DETECT
  128. 2270 BEQ AN2 ; WE HAVE R.D., (null) ON
  129. 2280 JSR GETKEY ; CHECK FOR KEYPRESS
  130. 2290 BEQ AN1
  131. 2300 AN0 JSR OFHOOK ; OFF-HOOK
  132. 2310 LDA KEYVAL ; GET KEY PRESSED
  133. 2320 CLC ; AND ABORT
  134. 2330 RTS
  135. 2340 AN2 JSR CLRTIM
  136. 2350 JSR OFHOOK ; OFF-HOOK
  137. 2360 AN3 JSR GETKEY
  138. 2370 BNE AN0
  139. 2380 LDA $DD01 ; CHECK FOR DCD LINE
  140. 2390 AND #16
  141. 2400 BEQ AN4 ; (null)T CARRIER, SIGNAL
  142. 2410 LDA 160
  143. 2420 CMP #8 ; 30 SECOND CARRIER CHECK
  144. 2430 BCC AN3
  145. 2440 BCS ANSWER ; TIMES UP, RESET
  146. 2450 AN4 SEC ; SET CARRY FOR OK STATUS
  147. 2460 LDX #<300 ; SET BAUD RATE TO 300
  148. 2470 LDY #>300
  149. 2480 RTS
  150. 2490 ;
  151. 2500 (null)OF LDA #0 ; PULSE ON-HOOK
  152. 2510 STA $DD01
  153. 2520 RTS
  154. 2530 ;
  155. 2540 CLRTIM LDA #0
  156. 2550 STA $A0
  157. 2560 STA $A1
  158. 2570 STA $A2
  159. 2580 RTS
  160. 2590 ;
  161. 2600 JIFFY TAX
  162. 2610 JSR CLRTIM
  163. 2620 JIFF1 CPX $A2
  164. 2630 BCS JIFF1
  165. 2640 RTS
  166. 2650 ;
  167. 2660 GETKEY JSR GETIN
  168. 2670 PHA
  169. 2680 STA KEYVAL
  170. 2690 PLA
  171. 2700 RTS
  172. 2710 ;
  173. 2720 HANGUP JSR ONHOOK ; (null) ON-HOOK
  174. 2730 LDA #120 ; WAIT 2 SECONDS
  175. 2740 JSR JIFFY
  176. 2750 LDA $DD01
  177. 2760 AND #16
  178. 2770 BEQ HANGUP ; DO UNTIL HUNG UP
  179. 2780 JSR OFHOOK ; SET UP FOR NEXT CALL
  180. 2790 LDA #120 ; WAIT 2 SECONDS
  181. 2800 JMP JIFFY
  182. 2810 ;
  183. 2820 CARCHK BIT DETECT
  184. 2830 BPL CAR1 ; SKIP DETECTION
  185. 2840 LDA $DD01
  186. 2850 AND #16
  187. 2860 BEQ CAR1 ; STILL HAVE CARRIER
  188. 2870 CLC
  189. 2880 RTS ; CARRIER LOST
  190. 2890 CAR1 SEC
  191. 2900 RTS
  192. 2910 ;
  193. 2920 CUSTOM RTS ; NONE FOR 1650 MODEMS
  194. 2930 ;
  195.